package com.ruoyi.system.domain;

import java.util.Date;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.annotation.Excel.Type;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.xss.Xss;

/**
 * 用户对象 sys_student
 * 
 * @author ruoyi
 */
public class SysStudent extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户ID */
    @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号")
    private Long studentId;

    /** 用户账号 */
    @Excel(name = "登录名称")
    private String studentName;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realName;

    /** 学校名称 */
    @Excel(name = "学校名称")
    private String schoolName;

    /** 年级 */
    @Excel(name = "年级")
    private String grade;

    /** 用户邮箱 */
    @Excel(name = "用户邮箱")
    private String email;

    /** 手机号码 */
    @Excel(name = "手机号码", cellType = ColumnType.TEXT)
    private String phonenumber;

    /** 用户性别 */
    @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
    private String sex;

    /** 用户头像 */
    private String avatar;

    /** 密码 */
    private String password;

    /** 帐号状态（0正常 1停用） */
    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 最后登录IP */
    @Excel(name = "最后登录IP", type = Type.EXPORT)
    private String loginIp;

    /** 最后登录时间 */
    @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
    private Date loginDate;

    /** 截止时间 */
    private String expireTime;

    /** 是否支持alpha背景音乐播放，0否1是 */
    private Integer alphaMusic;

    /** 正确单词提示秒数 */
    private Integer correctWordTipSeconds;

    /** 听写时长（单位：秒） */
    private Integer dictationDuration;

    /** 最大复习单词数 */
    private Integer maxReviewWords;

    /** 每组学习单词数 */
    private Integer wordsPerGroup;

    /** 创建时间 */
    private Date createTime;

    public SysStudent()
    {

    }

    public SysStudent(Long studentId)
    {
        this.studentId = studentId;
    }

    public Long getStudentId()
    {
        return studentId;
    }

    public void setStudentId(Long studentId) {
		this.studentId = studentId;
	}

	public String getRealName()
    {
        return realName;
    }

    public void setRealName(String realName)
    {
        this.realName = realName;
    }

    public String getSchoolName()
    {
        return schoolName;
    }

    public void setSchoolName(String schoolName)
    {
        this.schoolName = schoolName;
    }

    public String getGrade()
    {
        return grade;
    }
    public void setGrade(String grade)
    {
        this.grade = grade;
    }

    @Xss(message = "用户账号不能包含脚本字符")
    @NotBlank(message = "用户账号不能为空")
    @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
    public String getStudentName()
    {
        return studentName;
    }

    public void setStudentName(String studentName)
    {
        this.studentName = studentName;
    }

    @Email(message = "邮箱格式不正确")
    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
    public String getEmail()
    {
        return email;
    }

    public void setEmail(String email)
    {
        this.email = email;
    }

    @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
    public String getPhonenumber()
    {
        return phonenumber;
    }

    public void setPhonenumber(String phonenumber)
    {
        this.phonenumber = phonenumber;
    }

    public String getSex()
    {
        return sex;
    }

    public void setSex(String sex)
    {
        this.sex = sex;
    }

    public String getAvatar()
    {
        return avatar;
    }

    public void setAvatar(String avatar)
    {
        this.avatar = avatar;
    }

    public String getPassword()
    {
        return password;
    }

    public void setPassword(String password)
    {
        this.password = password;
    }

    public String getStatus()
    {
        return status;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getLoginIp()
    {
        return loginIp;
    }

    public void setLoginIp(String loginIp)
    {
        this.loginIp = loginIp;
    }

    public Date getLoginDate()
    {
        return loginDate;
    }

    public void setLoginDate(Date loginDate)
    {
        this.loginDate = loginDate;
    }

	public String getExpireTime() {
		return expireTime;
	}

	public void setExpireTime(String expireTime) {
		this.expireTime = expireTime;
	}

	public Integer getAlphaMusic() {
		return alphaMusic;
	}

	public void setAlphaMusic(Integer alphaMusic) {
		this.alphaMusic = alphaMusic;
	}

	public Integer getCorrectWordTipSeconds() {
		return correctWordTipSeconds;
	}

	public void setCorrectWordTipSeconds(Integer correctWordTipSeconds) {
		this.correctWordTipSeconds = correctWordTipSeconds;
	}

	public Integer getDictationDuration() {
		return dictationDuration;
	}

	public void setDictationDuration(Integer dictationDuration) {
		this.dictationDuration = dictationDuration;
	}

	public Integer getMaxReviewWords() {
		return maxReviewWords;
	}

	public void setMaxReviewWords(Integer maxReviewWords) {
		this.maxReviewWords = maxReviewWords;
	}

	public Integer getWordsPerGroup() {
		return wordsPerGroup;
	}

	public void setWordsPerGroup(Integer wordsPerGroup) {
		this.wordsPerGroup = wordsPerGroup;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
}
